package thread;

/**
 * @author DBX
 * @effect 线程：
 *              使用多线程可以改变程序的执行方式，从原有的单一顺序执行改变为多个代码片段同时执行，使得代码执行时互不影响
 *              创建线程的方式两种：
 *                  1.继承Thread并重写run（）方法（run方法中就是该线程要执行的任务代码）
 *                  2.编写一个类，实现java.lang.Runnable接口，实现run（）方法
 * @date 2021/8/31 0031 - 10:48
 */
public class ThreadDemo {
    public static void main(String[] args) {
        Thread t1 = new MyThread1();
        Thread t2 = new MyThread2();
        t1.start();
        t2.start();
    }

}

/*第一种创建线程的方式的优点时结构简单，利于使用匿名内部类形式创建
    缺点两个：1.由于java单继承，导致该线程就无法继承其他线程了，应改面向接口
            2.定义线程的同时重写run（）方法将线程要执行的任务定义在了线程中，这导致线程与任务绑定在了一起，不利于线程的重写*/

class MyThread1 extends Thread{
    @Override
    public void run() {
        for (int i = 0; i < 1000; i++) {
            System.out.println("1111");
        }
    }
}
class MyThread2 extends  Thread{
    @Override
    public void run() {
        for (int i = 0; i < 1000; i++) {
            System.out.println("2222");
        }
    }
}
